//
//  Police2.m
//  NotificationTest
//
//  Created by wp w on 12-6-22.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "Police2.h"
#import "Prisoner.h"

@implementation Police2

//下边的例子使用通知中心
-(id) init{ 
    self=[super init]; 
    if(self){ 
        //获取通知中心，它是单例的。 
        NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; 
        
        //向通知中心把自己添加为观察者
        //第一个参数是观察者，也就是警察自己，
        //第二个参数指定handleNotification 为处理通知的方法。
        //第三个参数是观察的事件的标识符prisioner_name，这就是一个标识性的名字，不是特指哪一个属性  
        [nc addObserver: self selector:@selector(handleNotification:)  
                   name:@"prisioner_name" object:nil]; 
    } 
    return self;
} 

//接收通知，这个方法的名字任意，只有参数是Notification 就可以了。 
-(void) handleNotification:(NSNotification *) notification{ 
    NSLog(@"Police handleNotification");
    
    NSString *name = [notification name];
    NSLog(@"name:%@", name);
    
    Prisoner *prisoner=[notification object];//获得通知中心传递过来的事件源对象 
    NSLog(@"object:0x%x, %@", prisoner, [prisoner name]);  
    
    //+ (id)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
    NSDictionary* userInfo = [notification userInfo];
    NSLog(@"userInfo:%@", userInfo);
} 

@end
